print ('本程序利用while循环，输出四种格式乘法口诀')
input ('按Enter键打印。。。')
print('')
print('='*80)
print('')


########11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

'''
1*1=1
1*2=2    2*2=4
1*3=3    2*3=6    3*3=9
1*4=4    2*4=8    3*4=12   4*4=16
1*5=5    2*5=10   3*5=15   4*5=20   5*5=25
1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36
1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49
1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64
1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81
'''
row=1  # 初始值为1
while row <= 9:   # 被乘数(row)的取值范围：1~9
    col = 1  # 初始值为1
    while col <= row:  # 乘数(col)的取值范围,随着被乘数变化:1~被乘数
        print('{0}*{1}={2:<4}'.format(col,row,row*col),end='')  # 打印输出结果，同一被乘数不换行。
        # 通过format连接字符串；调整乘数和被乘数的前后顺序；为了整齐让成绩靠左对齐占四位
        col = col + 1  #每执行一循+1
    print('')  # 同一被乘数输出完毕后，换行
    row = row + 1  #每执行一循+1
print('='*80)
print('')


########22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

'''
1*9=9    2*9=18   3*9=27   4*9=36   5*9=45   6*9=54   7*9=63   8*9=72   9*9=81
1*8=8    2*8=16   3*8=24   4*8=32   5*8=40   6*8=48   7*8=56   8*8=64
1*7=7    2*7=14   3*7=21   4*7=28   5*7=35   6*7=42   7*7=49
1*6=6    2*6=12   3*6=18   4*6=24   5*6=30   6*6=36
1*5=5    2*5=10   3*5=15   4*5=20   5*5=25
1*4=4    2*4=8    3*4=12   4*4=16
1*3=3    2*3=6    3*3=9
1*2=2    2*2=4
1*1=1
'''
row = 9
while row >= 1:   # 被乘数(row)的取值范围：9~1
    col = 1
    while col <= row:  # 乘数(col)的取值范围,随着被乘数变化:1~被乘数升序
        print('{0}*{1}={2:<4}'.format(col,row,row*col),end='')  # 打印输出结果，同一被乘数不换行。
        # 通过format连接字符串；调整乘数和被乘数的前后顺序；为了整齐让成绩靠左对齐占四位
        col = col + 1
    print('')  # 同一被乘数输出完毕后，换行
    row = row - 1
print('='*80)
print('')
#########3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
'''
                                                                1*1=1   
                                                        2*2=4   1*2=2   
                                                3*3=9   2*3=6   1*3=3   
                                        4*4=16  3*4=12  2*4=8   1*4=4   
                                5*5=25  4*5=20  3*5=15  2*5=10  1*5=5   
                        6*6=36  5*6=30  4*6=24  3*6=18  2*6=12  1*6=6   
                7*7=49  6*7=42  5*7=35  4*7=28  3*7=21  2*7=14  1*7=7   
        8*8=64  7*8=56  6*8=48  5*8=40  4*8=32  3*8=24  2*8=16  1*8=8   
9*9=81  8*9=72  7*9=63  6*9=54  5*9=45  4*9=36  3*9=27  2*9=18  1*9=9   
'''
row = 1
while row <=9 :  # 被乘数(row)的取值范围：1~9升序 第一行1，第9行9.
    RowMerg = ''  # 为了让每一行靠右边对齐，每一行输出作为一个合并后的字符串输出，
    col = row
    while col >= 1 :  # 乘数(col)的取值范围,随着被乘数变化而变化:被乘数(row)~1降序,第一行1~1，第二行2~1，第九行9~1
        RowMerg = RowMerg + str('{0}*{1}={2:<4}'.format(col, row, row * col))  # 同一行先合并字符串，不做输出
        # 通过format连接字符串；调整乘数和被乘数的前后顺序；
        col -= 1
    print('{:>72}'.format(RowMerg))  # 同一行先合完成后，讲合并后的字符串进行输出，整行靠右对齐
    row += 1
# print('')  # 同一被乘数输出完毕后，换行
print('=' * 80)
print('')

#########44444444444444444444444444444444444444444444444444444444444444444444444444444
'''
9*9=81  8*9=72  7*9=63  6*9=54  5*9=45  4*9=36  3*9=27  2*9=18  1*9=9   
        8*8=64  7*8=56  6*8=48  5*8=40  4*8=32  3*8=24  2*8=16  1*8=8   
                7*7=49  6*7=42  5*7=35  4*7=28  3*7=21  2*7=14  1*7=7   
                        6*6=36  5*6=30  4*6=24  3*6=18  2*6=12  1*6=6   
                                5*5=25  4*5=20  3*5=15  2*5=10  1*5=5   
                                        4*4=16  3*4=12  2*4=8   1*4=4   
                                                3*3=9   2*3=6   1*3=3   
                                                        2*2=4   1*2=2   
                                                                1*1=1   

'''
row = 9
while row >= 1 :  # 被乘数(row)的取值范围：9~1倒序 第一行9，第9行1.
    RowMerg = ''  # 为了让每一行靠右边对齐，每一行输出作为一个合并后的字符串输出，
    col = row
    while col >= 1 :  # 乘数(col)的取值范围,随着被乘数变化而变化:被乘数(row)~1,第一行1~1，第二行2~2，第九行9~1
        RowMerg = RowMerg + str('{0}*{1}={2:<4}'.format(col, row, row * col))  # 同一行先合并字符串，不做输出
        # 通过format连接字符串；调整乘数和被乘数的前后顺序；
        col -= 1
    print('{:>72}'.format(RowMerg))  # 同一行先合完成后，讲合并后的字符串进行输出，整行靠右对齐
    row -= 1
# print('')  # 同一被乘数输出完毕后，换行
print('=' * 80)
print('')